(module binary
  "\00\61\73\6d\01\00\00\00\01\a1\80\80\80\00\07\60"
  "\03\7f\7f\7f\01\7f\60\00\00\60\00\01\7f\60\00\01"
  "\7e\60\00\01\7d\60\00\01\7c\60\02\7f\7f\01\7f\03"
  "\bc\80\80\80\00\3b\01\01\01\01\01\02\03\04\05\01"
  "\01\01\02\02\02\02\02\01\02\02\01\02\02\03\02\06"
  "\06\06\06\02\00\02\02\02\02\02\02\02\02\04\03\02"
  "\02\02\02\04\02\03\02\02\02\02\02\02\02\02\02\02"
  "\02\04\85\80\80\80\00\01\70\01\01\01\05\83\80\80"
  "\80\00\01\00\01\07\8a\88\80\80\00\39\08\74\79\70"
  "\65\2d\69\33\32\00\01\08\74\79\70\65\2d\69\36\34"
  "\00\02\08\74\79\70\65\2d\66\33\32\00\03\08\74\79"
  "\70\65\2d\66\36\34\00\04\0e\74\79\70\65\2d\69\33"
  "\32\2d\76\61\6c\75\65\00\05\0e\74\79\70\65\2d\69"
  "\36\34\2d\76\61\6c\75\65\00\06\0e\74\79\70\65\2d"
  "\66\33\32\2d\76\61\6c\75\65\00\07\0e\74\79\70\65"
  "\2d\66\36\34\2d\76\61\6c\75\65\00\08\0e\61\73\2d"
  "\62\6c\6f\63\6b\2d\66\69\72\73\74\00\09\0c\61\73"
  "\2d\62\6c\6f\63\6b\2d\6d\69\64\00\0a\0d\61\73\2d"
  "\62\6c\6f\63\6b\2d\6c\61\73\74\00\0b\0e\61\73\2d"
  "\62\6c\6f\63\6b\2d\76\61\6c\75\65\00\0c\0d\61\73"
  "\2d\6c\6f\6f\70\2d\66\69\72\73\74\00\0d\0b\61\73"
  "\2d\6c\6f\6f\70\2d\6d\69\64\00\0e\0c\61\73\2d\6c"
  "\6f\6f\70\2d\6c\61\73\74\00\0f\0b\61\73\2d\62\72"
  "\2d\76\61\6c\75\65\00\10\0d\61\73\2d\62\72\5f\69"
  "\66\2d\63\6f\6e\64\00\11\0e\61\73\2d\62\72\5f\69"
  "\66\2d\76\61\6c\75\65\00\12\13\61\73\2d\62\72\5f"
  "\69\66\2d\76\61\6c\75\65\2d\63\6f\6e\64\00\13\11"
  "\61\73\2d\62\72\5f\74\61\62\6c\65\2d\69\6e\64\65"
  "\78\00\14\11\61\73\2d\62\72\5f\74\61\62\6c\65\2d"
  "\76\61\6c\75\65\00\15\17\61\73\2d\62\72\5f\74\61"
  "\62\6c\65\2d\76\61\6c\75\65\2d\69\6e\64\65\78\00"
  "\16\0f\61\73\2d\72\65\74\75\72\6e\2d\76\61\6c\75"
  "\65\00\17\0a\61\73\2d\69\66\2d\63\6f\6e\64\00\18"
  "\0a\61\73\2d\69\66\2d\74\68\65\6e\00\19\0a\61\73"
  "\2d\69\66\2d\65\6c\73\65\00\1a\0f\61\73\2d\73\65"
  "\6c\65\63\74\2d\66\69\72\73\74\00\1b\10\61\73\2d"
  "\73\65\6c\65\63\74\2d\73\65\63\6f\6e\64\00\1c\0e"
  "\61\73\2d\73\65\6c\65\63\74\2d\63\6f\6e\64\00\1d"
  "\0d\61\73\2d\63\61\6c\6c\2d\66\69\72\73\74\00\1f"
  "\0b\61\73\2d\63\61\6c\6c\2d\6d\69\64\00\20\0c\61"
  "\73\2d\63\61\6c\6c\2d\6c\61\73\74\00\21\15\61\73"
  "\2d\63\61\6c\6c\5f\69\6e\64\69\72\65\63\74\2d\66"
  "\75\6e\63\00\22\16\61\73\2d\63\61\6c\6c\5f\69\6e"
  "\64\69\72\65\63\74\2d\66\69\72\73\74\00\23\14\61"
  "\73\2d\63\61\6c\6c\5f\69\6e\64\69\72\65\63\74\2d"
  "\6d\69\64\00\24\15\61\73\2d\63\61\6c\6c\5f\69\6e"
  "\64\69\72\65\63\74\2d\6c\61\73\74\00\25\12\61\73"
  "\2d\73\65\74\5f\6c\6f\63\61\6c\2d\76\61\6c\75\65"
  "\00\26\0f\61\73\2d\6c\6f\61\64\2d\61\64\64\72\65"
  "\73\73\00\27\10\61\73\2d\6c\6f\61\64\4e\2d\61\64"
  "\64\72\65\73\73\00\28\10\61\73\2d\73\74\6f\72\65"
  "\2d\61\64\64\72\65\73\73\00\29\0e\61\73\2d\73\74"
  "\6f\72\65\2d\76\61\6c\75\65\00\2a\11\61\73\2d\73"
  "\74\6f\72\65\4e\2d\61\64\64\72\65\73\73\00\2b\0f"
  "\61\73\2d\73\74\6f\72\65\4e\2d\76\61\6c\75\65\00"
  "\2c\10\61\73\2d\75\6e\61\72\79\2d\6f\70\65\72\61"
  "\6e\64\00\2d\0e\61\73\2d\62\69\6e\61\72\79\2d\6c"
  "\65\66\74\00\2e\0f\61\73\2d\62\69\6e\61\72\79\2d"
  "\72\69\67\68\74\00\2f\0f\61\73\2d\74\65\73\74\2d"
  "\6f\70\65\72\61\6e\64\00\30\0f\61\73\2d\63\6f\6d"
  "\70\61\72\65\2d\6c\65\66\74\00\31\10\61\73\2d\63"
  "\6f\6d\70\61\72\65\2d\72\69\67\68\74\00\32\12\61"
  "\73\2d\63\6f\6e\76\65\72\74\2d\6f\70\65\72\61\6e"
  "\64\00\33\13\61\73\2d\67\72\6f\77\5f\6d\65\6d\6f"
  "\72\79\2d\73\69\7a\65\00\34\12\6e\65\73\74\65\64"
  "\2d\62\6c\6f\63\6b\2d\76\61\6c\75\65\00\35\0f\6e"
  "\65\73\74\65\64\2d\62\72\2d\76\61\6c\75\65\00\36"
  "\12\6e\65\73\74\65\64\2d\62\72\5f\69\66\2d\76\61"
  "\6c\75\65\00\37\17\6e\65\73\74\65\64\2d\62\72\5f"
  "\69\66\2d\76\61\6c\75\65\2d\63\6f\6e\64\00\38\15"
  "\6e\65\73\74\65\64\2d\62\72\5f\74\61\62\6c\65\2d"
  "\76\61\6c\75\65\00\39\1b\6e\65\73\74\65\64\2d\62"
  "\72\5f\74\61\62\6c\65\2d\76\61\6c\75\65\2d\69\6e"
  "\64\65\78\00\3a\09\87\80\80\80\00\01\00\41\00\0b"
  "\01\1e\0a\84\89\80\80\00\3b\82\80\80\80\00\00\0b"
  "\89\80\80\80\00\00\02\40\0c\00\68\1a\0b\0b\89\80"
  "\80\80\00\00\02\40\0c\00\7a\1a\0b\0b\89\80\80\80"
  "\00\00\02\40\0c\00\8c\1a\0b\0b\89\80\80\80\00\00"
  "\02\40\0c\00\9a\1a\0b\0b\8a\80\80\80\00\00\02\7f"
  "\41\01\0c\00\68\0b\0b\8a\80\80\80\00\00\02\7e\42"
  "\02\0c\00\7a\0b\0b\8d\80\80\80\00\00\02\7d\43\00"
  "\00\40\40\0c\00\8c\0b\0b\91\80\80\80\00\00\02\7c"
  "\44\00\00\00\00\00\00\10\40\0c\00\9a\0b\0b\89\80"
  "\80\80\00\00\02\40\0c\00\10\00\0b\0b\8b\80\80\80"
  "\00\00\02\40\10\00\0c\00\10\00\0b\0b\8a\80\80\80"
  "\00\00\02\40\01\10\00\0c\00\0b\0b\8c\80\80\80\00"
  "\00\02\7f\01\10\00\41\02\0c\00\0b\0b\8e\80\80\80"
  "\00\00\02\7f\03\7f\41\03\0c\01\41\02\0b\0b\0b\90"
  "\80\80\80\00\00\02\7f\03\7f\10\00\41\04\0c\01\41"
  "\02\0b\0b\0b\8f\80\80\80\00\00\02\7f\03\7f\01\10"
  "\00\41\05\0c\01\0b\0b\0b\8b\80\80\80\00\00\02\7f"
  "\41\09\0c\00\0c\00\0b\0b\89\80\80\80\00\00\02\40"
  "\0c\00\0d\00\0b\0b\90\80\80\80\00\00\02\7f\41\08"
  "\0c\00\41\01\0d\00\1a\41\07\0b\0b\90\80\80\80\00"
  "\00\02\7f\41\06\41\09\0c\00\0d\00\1a\41\07\0b\0b"
  "\8c\80\80\80\00\00\02\40\0c\00\0e\02\00\00\00\0b"
  "\0b\92\80\80\80\00\00\02\7f\41\0a\0c\00\41\01\0e"
  "\02\00\00\00\41\07\0b\0b\91\80\80\80\00\00\02\7f"
  "\41\06\41\0b\0c\00\0e\01\00\00\41\07\0b\0b\8a\80"
  "\80\80\00\00\02\7e\42\07\0c\00\0f\0b\0b\91\80\80"
  "\80\00\00\02\7f\41\02\0c\00\04\7f\41\00\05\41\01"
  "\0b\0b\0b\91\80\80\80\00\00\02\7f\20\00\04\7f\41"
  "\03\0c\01\05\20\01\0b\0b\0b\91\80\80\80\00\00\02"
  "\7f\20\00\04\7f\20\01\05\41\04\0c\01\0b\0b\0b\8e"
  "\80\80\80\00\00\02\7f\41\05\0c\00\20\00\20\01\1b"
  "\0b\0b\8e\80\80\80\00\00\02\7f\20\00\41\06\0c\00"
  "\20\01\1b\0b\0b\8e\80\80\80\00\00\02\7f\41\00\41"
  "\01\41\07\0c\00\1b\0b\0b\84\80\80\80\00\00\41\7f"
  "\0b\8f\80\80\80\00\00\02\7f\41\0c\0c\00\41\02\41"
  "\03\10\1e\0b\0b\8f\80\80\80\00\00\02\7f\41\01\41"
  "\0d\0c\00\41\03\10\1e\0b\0b\8f\80\80\80\00\00\02"
  "\7f\41\01\41\02\41\0e\0c\00\10\1e\0b\0b\92\80\80"
  "\80\00\00\02\7f\41\14\0c\00\41\01\41\02\41\03\11"
  "\00\00\0b\0b\92\80\80\80\00\00\02\7f\41\00\41\15"
  "\0c\00\41\02\41\03\11\00\00\0b\0b\92\80\80\80\00"
  "\00\02\7f\41\00\41\01\41\16\0c\00\41\03\11\00\00"
  "\0b\0b\92\80\80\80\00\00\02\7f\41\00\41\01\41\02"
  "\41\17\0c\00\11\00\00\0b\0b\8f\80\80\80\00\01\01"
  "\7d\02\7f\41\11\0c\00\21\00\41\7f\0b\0b\8f\80\80"
  "\80\00\00\02\7d\43\9a\99\d9\3f\0c\00\2a\02\00\0b"
  "\0b\8c\80\80\80\00\00\02\7e\42\1e\0c\00\30\00\00"
  "\0b\0b\97\80\80\80\00\00\02\7f\41\1e\0c\00\44\00"
  "\00\00\00\00\00\1c\40\39\03\00\41\7f\0b\0b\90\80"
  "\80\80\00\00\02\7f\41\02\41\1f\0c\00\37\03\00\41"
  "\7f\0b\0b\90\80\80\80\00\00\02\7f\41\20\0c\00\41"
  "\07\3a\00\00\41\7f\0b\0b\90\80\80\80\00\00\02\7f"
  "\41\02\41\21\0c\00\3d\01\00\41\7f\0b\0b\8d\80\80"
  "\80\00\00\02\7d\43\9a\99\59\40\0c\00\8c\0b\0b\8c"
  "\80\80\80\00\00\02\7f\41\03\0c\00\41\0a\6a\0b\0b"
  "\8c\80\80\80\00\00\02\7e\42\0a\42\2d\0c\00\7d\0b"
  "\0b\8a\80\80\80\00\00\02\7f\41\2c\0c\00\45\0b\0b"
  "\93\80\80\80\00\00\02\7f\41\2b\0c\00\44\00\00\00"
  "\00\00\00\24\40\65\0b\0b\8f\80\80\80\00\00\02\7f"
  "\43\00\00\20\41\41\2a\0c\00\5c\0b\0b\8a\80\80\80"
  "\00\00\02\7f\41\29\0c\00\a7\0b\0b\8b\80\80\80\00"
  "\00\02\7f\41\28\0c\00\40\00\0b\0b\91\80\80\80\00"
  "\00\41\01\02\7f\10\00\41\04\41\08\0c\00\6a\0b\6a"
  "\0b\9a\80\80\80\00\00\41\01\02\7f\41\02\1a\02\7f"
  "\41\04\1a\41\08\0c\01\0c\00\0b\1a\41\10\0b\6a\0b"
  "\9f\80\80\80\00\00\41\01\02\7f\41\02\1a\02\7f\41"
  "\04\1a\41\08\0c\01\41\01\0d\00\1a\41\20\0b\1a\41"
  "\10\0b\6a\0b\96\80\80\80\00\00\41\01\02\7f\41\02"
  "\1a\41\04\41\08\0c\00\0d\00\1a\41\10\0b\6a\0b\9d"
  "\80\80\80\00\00\41\01\02\7f\41\02\1a\02\7f\41\04"
  "\1a\41\08\0c\01\41\01\0e\00\00\0b\1a\41\10\0b\6a"
  "\0b\96\80\80\80\00\00\41\01\02\7f\41\02\1a\41\04"
  "\41\08\0c\00\0e\00\00\41\10\0b\6a\0b"
)
(assert_return (invoke "type-i32"))
(assert_return (invoke "type-i64"))
(assert_return (invoke "type-f32"))
(assert_return (invoke "type-f64"))
(assert_return (invoke "type-i32-value") (i32.const 1))
(assert_return (invoke "type-i64-value") (i64.const 2))
(assert_return (invoke "type-f32-value") (f32.const 0x1.8p+1))
(assert_return (invoke "type-f64-value") (f64.const 0x1p+2))
(assert_return (invoke "as-block-first"))
(assert_return (invoke "as-block-mid"))
(assert_return (invoke "as-block-last"))
(assert_return (invoke "as-block-value") (i32.const 2))
(assert_return (invoke "as-loop-first") (i32.const 3))
(assert_return (invoke "as-loop-mid") (i32.const 4))
(assert_return (invoke "as-loop-last") (i32.const 5))
(assert_return (invoke "as-br-value") (i32.const 9))
(assert_return (invoke "as-br_if-cond"))
(assert_return (invoke "as-br_if-value") (i32.const 8))
(assert_return (invoke "as-br_if-value-cond") (i32.const 9))
(assert_return (invoke "as-br_table-index"))
(assert_return (invoke "as-br_table-value") (i32.const 10))
(assert_return (invoke "as-br_table-value-index") (i32.const 11))
(assert_return (invoke "as-return-value") (i64.const 7))
(assert_return (invoke "as-if-cond") (i32.const 2))
(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3))
(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6))
(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4))
(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6))
(assert_return
  (invoke "as-select-first" (i32.const 0) (i32.const 6))
  (i32.const 5)
)
(assert_return
  (invoke "as-select-first" (i32.const 1) (i32.const 6))
  (i32.const 5)
)
(assert_return
  (invoke "as-select-second" (i32.const 0) (i32.const 6))
  (i32.const 6)
)
(assert_return
  (invoke "as-select-second" (i32.const 1) (i32.const 6))
  (i32.const 6)
)
(assert_return (invoke "as-select-cond") (i32.const 7))
(assert_return (invoke "as-call-first") (i32.const 12))
(assert_return (invoke "as-call-mid") (i32.const 13))
(assert_return (invoke "as-call-last") (i32.const 14))
(assert_return (invoke "as-call_indirect-func") (i32.const 20))
(assert_return (invoke "as-call_indirect-first") (i32.const 21))
(assert_return (invoke "as-call_indirect-mid") (i32.const 22))
(assert_return (invoke "as-call_indirect-last") (i32.const 23))
(assert_return (invoke "as-set_local-value") (i32.const 17))
(assert_return (invoke "as-load-address") (f32.const 0x1.b33334p+0))
(assert_return (invoke "as-loadN-address") (i64.const 30))
(assert_return (invoke "as-store-address") (i32.const 30))
(assert_return (invoke "as-store-value") (i32.const 31))
(assert_return (invoke "as-storeN-address") (i32.const 32))
(assert_return (invoke "as-storeN-value") (i32.const 33))
(assert_return (invoke "as-unary-operand") (f32.const 0x1.b33334p+1))
(assert_return (invoke "as-binary-left") (i32.const 3))
(assert_return (invoke "as-binary-right") (i64.const 45))
(assert_return (invoke "as-test-operand") (i32.const 44))
(assert_return (invoke "as-compare-left") (i32.const 43))
(assert_return (invoke "as-compare-right") (i32.const 42))
(assert_return (invoke "as-convert-operand") (i32.const 41))
(assert_return (invoke "as-grow_memory-size") (i32.const 40))
(assert_return (invoke "nested-block-value") (i32.const 9))
(assert_return (invoke "nested-br-value") (i32.const 9))
(assert_return (invoke "nested-br_if-value") (i32.const 9))
(assert_return (invoke "nested-br_if-value-cond") (i32.const 9))
(assert_return (invoke "nested-br_table-value") (i32.const 9))
(assert_return (invoke "nested-br_table-value-index") (i32.const 9))
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\8f\80\80\80"
    "\00\01\89\80\80\80\00\00\02\7f\0c\00\41\01\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\90\80\80\80"
    "\00\01\8a\80\80\80\00\00\02\7f\01\0c\00\41\01\0b"
    "\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\92\80\80\80"
    "\00\01\8c\80\80\80\00\00\02\7f\41\00\02\40\0c\01"
    "\0b\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\91\80\80\80"
    "\00\01\8b\80\80\80\00\00\02\7f\42\01\0c\00\41\01"
    "\0b\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\84\80\80\80\00\01\60"
    "\00\00\03\82\80\80\80\00\01\00\0a\8a\80\80\80\00"
    "\01\84\80\80\80\00\00\0c\01\0b"
  )
  "unknown label"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\84\80\80\80\00\01\60"
    "\00\00\03\82\80\80\80\00\01\00\0a\90\80\80\80\00"
    "\01\8a\80\80\80\00\00\02\40\02\40\0c\05\0b\0b\0b"
  )
  "unknown label"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\84\80\80\80\00\01\60"
    "\00\00\03\82\80\80\80\00\01\00\0a\8e\80\80\80\00"
    "\01\88\80\80\80\00\00\0c\81\80\80\80\01\0b"
  )
  "unknown label"
)
